home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Dev / gcc263-src.lha / gcc-2.6.3 / config / 1750a / ms1750.inc < prev   
Text File  |  1994-09-20  |  1KB  |  74 lines

  1. ;; GCC assembler includefile for AS1750
  2. ;;
  3. ;; Macros defined:
  4. ;;   EFLR.M  #d,#s    Load the three regs starting at R#s to R#d following.
  5. ;;   RET.M   #fs    Return from function (uses the framesize #fs)
  6.  
  7.  
  8. UC    SET    15
  9.  
  10. ; Return from function ; parameter: framesize
  11.      MACRO RET.M
  12.     IF `1` > 0
  13.         IF `1` <= 16
  14.         AISP R14,`1`
  15.         ELSE
  16.         AIM  R14,`1`
  17.         ENDIF
  18.     ENDIF
  19.     LR   R15,R14
  20.     URS  R15
  21.      ENDMACRO
  22.  
  23. ; Useful instructions missing from the 1750A standard:
  24.  
  25. ; Extended Float Load from Registers
  26.      MACRO EFLR.M    ; args : #1=dest-regno, #2=source-regno
  27. ONE     SET  `1` + 2
  28. TWO     SET  `2` + 2
  29.     IF `1` >= `2` || `1`+2 < `2`
  30.         LR    R`ONE`,R`TWO`
  31.         DLR   R`1`,R`2`
  32.     ELSE
  33.         DLR   R`1`,R`2`
  34.         LR    R`ONE`,R`TWO`
  35.         DLR   R`1`,R`1`    ; Just to update condition codes
  36.     ENDIF
  37.      ENDMACRO
  38.  
  39. ; The following leave the condition codes haywire. But that is
  40. ; accounted for (see notice_update_cc in config/1750a.c.)
  41.  
  42. ; Double ANd Register with Register
  43.      MACRO DANR.M
  44. ONE     SET  `1` + 1
  45. TWO     SET  `2` + 1
  46.     ANDR  R`1`,R`2`
  47.     ANDR  R`ONE`,R`TWO`
  48.      ENDMACRO
  49.  
  50. ; Double OR Register with Register
  51.      MACRO DORR.M
  52. ONE     SET  `1` + 1
  53. TWO     SET  `2` + 1
  54.     ORR   R`1`,R`2`
  55.     ORR   R`ONE`,R`TWO`
  56.      ENDMACRO
  57.  
  58. ; Double eXoR Register with Register
  59.      MACRO DXRR.M
  60. ONE     SET  `1` + 1
  61. TWO     SET  `2` + 1
  62.     XORR  R`1`,R`2`
  63.     XORR  R`ONE`,R`TWO`
  64.      ENDMACRO
  65.  
  66. ; Double Nand Register with register
  67.      MACRO DNR.M
  68. ONE     SET  `1` + 1
  69. TWO     SET  `2` + 1
  70.     NR    R`1`,R`2`
  71.     NR    R`ONE`,R`TWO`
  72.      ENDMACRO
  73.  
  74.